#pragma once
#include <QObject>
#include "filter.h"
#include <QSlider>
#include <QMutex>
#include <QGridLayout>
#include "IntStringConverter.h"

class ParameterInput :
	public QObject,
	public Filter
{
	Q_OBJECT

public:
	enum Outputs { OUTPUT_MAT = 0 };

	ParameterInput(int rows, int cols, int type, int minValue, int maxValue, const QString &filterName = "");
	virtual ~ParameterInput(void);

	void Process();
	virtual QWidget *GetPropertiesWidget();
	virtual QString GetFilterName();
	
private slots:
	void newValue();

private:
	int rows;
	int cols;
	cv::Mat value;
	QMutex valueMutex;

	QWidget *propertiesWidget;
	QGridLayout *layout;
	QSlider **sliders;
	IntStringConverter **converters;

	QString name;

};

